﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DataLayer.CLASES_Seguridad_DAO;
using EntityLayer;

namespace BusinessLayer.Clases_Seguridad_BO
{
    public class clsUsuarioBL
    {
        clsUsuarioDAO objUsuarioDAO = new clsUsuarioDAO();

        public List<T_Usuario> Listar()
        {
            return this.objUsuarioDAO.Listar();
        }

        public bool Insertar(T_Usuario obj)
        {
            return this.objUsuarioDAO.Insertar(obj);
        }

        public bool Modificar(T_Usuario obj)
        {
            return this.objUsuarioDAO.Modificar(obj);
        }

        public bool Eliminar(T_Usuario obj)
        {
            return this.objUsuarioDAO.Eliminar(obj);
        }

        public bool Actualiza_EstadoUsuario(string estado, string id_usuario)
        {
            return this.objUsuarioDAO.Actualiza_EstadoUsuario(estado, id_usuario);
        }

        public bool InsertarUsuarioGrupo(T_Usuario_Grupo Obj)
        {
            return this.objUsuarioDAO.InsertarUsuarioGrupo(Obj);
        }

        public bool EliminarUsuarioGrupo(string ID_USUARIO)
        {
            return this.objUsuarioDAO.EliminarUsuarioGrupo(ID_USUARIO);
        }

        public string GenerarPass(int LongPassMin, int LongPassMax)
        {

            return objUsuarioDAO.GenerarPass(LongPassMin, LongPassMax);
        }
        public bool actualizarPassword(string password, string email)
        {
            return objUsuarioDAO.actualizarPassword(password, email);

        }
        public bool cambiarPassword(string password, string IdUsuario) {
            return objUsuarioDAO.cambiarPassword(password, IdUsuario);
        }
        //Encriptado Logic



        //public string EncriptacionPassword(string password)
        //{


        //    return usuarioDAO.EncriptarPassword(password);

        //}




        //public bool DescencriptarPassword(string id_usuario, string des_password)
        //{


        //    return usuarioDAO.DescencriptarPassword(id_usuario, des_password);

        //}

        //public string DesEncriptarUser(string password)
        //{

        //    return usuarioDAO.DesEncriptarUser(password);
        //}

        //public string EncriptarPasswordUser(string PASWORD)
        //{

        //    return usuarioDAO.EncriptarPasswordUser(PASWORD);
        //}

        public List<T_Usuario> listarUser(string username)
        {

            return objUsuarioDAO.listarUser(username);
        }

        public List<T_Usuario> listaEmail(string des_email)
        {
            return objUsuarioDAO.listaEmail(des_email);
        }

        public string ValidarUsuario(string userName, string password)
        {

            T_Usuario usuario = new clsUsuarioDAO().listarUser(userName)[0];

            if (usuario != null)
            {
                if (usuario.IND_ESTADO == "A")
                {
                    if (password == clsSeguridad.Decrypt(usuario.DES_PASSWORD))
                    {
                        return "OK";
                    }
                    else
                    {
                        return "seg_pws_incorrecto";
                    }
                }
                else
                {
                    return "seg_user_noactivo";
                }
            }
            else
            {
                return "seg_user_noexiste";
            }
        }
    }
}
